<!-- Copyright (c) 2019 Legytma Soluções Inteligentes (https://legytma.com.br). -->
<!-- -->
<!--  Licensed under the Apache License, Version 2.0 (the "License"); -->
<!--  you may not use this file except in compliance with the License. -->
<!--  You may obtain a copy of the License at -->
<!-- -->
<!--       http://www.apache.org/licenses/LICENSE-2.0 -->
<!-- -->
<!-- Unless required by applicable law or agreed to in writing, software -->
<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
<!-- See the License for the specific language governing permissions and -->
<!-- limitations under the License. -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport"
          content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
    <meta name="description"
          content="API docs for the SchemaForm class from the schema_form library, for the Dart programming language.">
    <title>SchemaForm class - schema_form library - Dart API</title>
    <!-- required because all the links are pseudo-absolute -->
    <base href="..">

    <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700"
          rel="stylesheet">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="static-assets/github.css">
    <link rel="stylesheet" href="static-assets/styles.css">
    <link rel="icon" href="static-assets/favicon.png">

</head>

<body>

<div id="overlay-under-drawer"></div>

<header id="title">
    <button id="sidenav-left-toggle" type="button">&nbsp;</button>
    <ol class="breadcrumbs gt-separated dark hidden-xs">
        <li><a href="index.html">schema_form</a></li>
        <li><a href="schema_form/schema_form-library.html">schema_form</a></li>
        <li class="self-crumb">SchemaForm class</li>
    </ol>
    <div class="self-name">SchemaForm</div>
    <form class="search navbar-right" role="search">
        <input type="text" id="search-box" autocomplete="off" disabled
               class="form-control typeahead" placeholder="Loading search...">
    </form>
</header>

<main>

    <div id="dartdoc-sidebar-left"
         class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
        <header id="header-search-sidebar" class="hidden-l">
            <form class="search-sidebar" role="search">
                <input type="text" id="search-sidebar" autocomplete="off" disabled
                       class="form-control typeahead" placeholder="Loading search...">
            </form>
        </header>

        <ol class="breadcrumbs gt-separated dark hidden-l" id="sidebar-nav">
            <li><a href="index.html">schema_form</a></li>
            <li><a href="schema_form/schema_form-library.html">schema_form</a></li>
            <li class="self-crumb">SchemaForm class</li>
        </ol>

        <h5>schema_form library</h5>
        <ol>
            <li class="section-title"><a
                    href="schema_form/schema_form-library.html#classes">Classes</a></li>
            <li><a href="schema_form/ChangeValueJsonSchemaEvent-class.html">ChangeValueJsonSchemaEvent</a>
            </li>
            <li><a href="schema_form/JsonSchemaBloc-class.html">JsonSchemaBloc</a></li>
            <li><a href="schema_form/JsonSchemaEvent-class.html">JsonSchemaEvent</a></li>
            <li><a href="schema_form/JsonSchemaState-class.html">JsonSchemaState</a></li>
            <li><a href="schema_form/LoadDataEvent-class.html">LoadDataEvent</a></li>
            <li><a href="schema_form/LoadDataSchemaEvent-class.html">LoadDataSchemaEvent</a></li>
            <li><a href="schema_form/LoadLayoutSchemaEvent-class.html">LoadLayoutSchemaEvent</a>
            </li>
            <li><a href="schema_form/SchemaForm-class.html">SchemaForm</a></li>
            <li><a href="schema_form/SubmitJsonSchemaEvent-class.html">SubmitJsonSchemaEvent</a>
            </li>


        </ol>
    </div>

    <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
        <div><h1><span class="kind-class">SchemaForm</span> class </h1></div>

        <section class="desc markdown">
            <p><code>StatelessWidget</code> for building forms dynamically from JSON schema
                interpretation.
                It takes two JSONs to build the form. A third JSON can be used as a data
                source, which in turn needs to be in accordance with the data schema.</p>
            <h2 id="examples">Examples</h2>
            <h3 id="minimal">Minimal</h3>
            <pre class="language-dart"><code class="language-dart">  JsonSchemaBloc jsonSchemaBloc = JsonSchemaBloc(formContext: context);
  SchemaForm schemaForm = SchemaForm(jsonSchemaBloc: jsonSchemaBloc);

  File layoutSchemaFile = new File("layoutSchema.json");
  File dataSchemaFile = new File("dataSchema.json");
  File dataValueFile = new File("dataValue.json");

  String layoutSchemaContent = layoutSchemaFile.readAsStringSync();
  String dataSchemaContent = dataSchemaFile.readAsStringSync();
  String dataValueContent = dataValueFile.readAsStringSync();

  Map&lt;String, dynamic&gt; layoutSchemaMap = json.decode(layoutSchemaContent);
  Map&lt;String, dynamic&gt; dataSchemaMap = json.decode(dataSchemaContent);
  Map&lt;String, dynamic&gt; dataValueMap = json.decode(dataValueContent);

  JsonSchema dataJsonSchema = JsonSchema.createSchema(dataSchemaMap);

  jsonSchemaBloc.add(LoadLayoutSchemaEvent(layout: layoutSchemaMap));
  jsonSchemaBloc.add(LoadDataSchemaEvent(dataSchema: dataJsonSchema));
  jsonSchemaBloc.add(LoadDataEvent(data: dataValueMap));
</code></pre>
            <h3 id="complete">Complete</h3>
            <pre class="language-dart"><code class="language-dart">import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:json_schema/json_schema.dart';
import 'package:schema_form/bloc/json_schema_bl.dart';
import 'package:schema_form/schema_form.dart';

void main() =&gt; runApp(MyApp());

enum FileLocate { asset, storage, url }

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final appTitle = 'Flutter JsonSchema Demo';
    JsonSchemaBloc jsonSchemaBloc = JsonSchemaBloc(formContext: context);

    loadSchemasFrom(
      FileLocate.asset,
      context,
      jsonSchemaBloc,
    );

    return MaterialApp(
      locale: Locale("pt", "BR"),
      title: appTitle,
      home: Scaffold(
        appBar: AppBar(
          title: Text(appTitle),
        ),
        drawer: Drawer(
          child: ListView(
            // Important: Remove any padding from the ListView.
            padding: EdgeInsets.zero,
            children: &lt;Widget&gt;[
              DrawerHeader(
                child: Text(appTitle),
                decoration: BoxDecoration(
                  color: Colors.blue,
                ),
              ),
              ListTile(
                title: Text('Load from Asset'),
                onTap: () =&gt; loadSchemasFrom(
                  FileLocate.asset,
                  context,
                  jsonSchemaBloc,
                ),
              ),
              ListTile(
                title: Text('Load from Storage'),
                onTap: () =&gt; loadSchemasFrom(
                  FileLocate.storage,
                  context,
                  jsonSchemaBloc,
                ),
              ),
              ListTile(
                title: Text('Load from URL'),
                onTap: () =&gt; loadSchemasFrom(
                  FileLocate.url,
                  context,
                  jsonSchemaBloc,
                ),
              ),
            ],
          ),
        ),
        body: SchemaForm(jsonSchemaBloc: jsonSchemaBloc),
      ),
    );
  }

  void loadSchemasFrom(FileLocate fileLocate, BuildContext context,
      JsonSchemaBloc jsonSchemaBloc) {
    loadJsonFrom(fileLocate, context, "testLayoutSchema.json").then(
            (Map&lt;String, dynamic&gt; layoutSchema) =&gt;
            jsonSchemaBloc.add(LoadLayoutSchemaEvent(layout: layoutSchema)));

    loadJsonFrom(fileLocate, context, "testDataSchema.json").then(
            (Map&lt;String, dynamic&gt; jsonMap) =&gt;
            jsonSchemaBloc.add(
                LoadDataSchemaEvent(dataSchema: JsonSchema.createSchema(jsonMap))));

    loadJsonFrom(fileLocate, context, "testDataValue.json").then(
            (Map&lt;String, dynamic&gt; dataValue) =&gt;
            jsonSchemaBloc.add(LoadDataEvent(data: dataValue)));
  }

  Future&lt;Map&lt;String, dynamic&gt;&gt; loadJsonFrom(FileLocate fileLocate,
      BuildContext context, String fileName) async {
    switch (fileLocate) {
      case FileLocate.asset:
        return await loadJsonFromAsset(context, 'assets/$fileName');
      case FileLocate.storage:
        return await loadJsonFromStorage(
            context, '/storage/emulated/0/Json/files/$fileName');
      case FileLocate.url:
        return await loadJsonFromUrl(context,
            'https://legytma-platform-open-api-back.herokuapp.com/schema/mongo/$fileName');
      default:
        throw "Não implementado!";
    }
  }

  Future&lt;Map&lt;String, dynamic&gt;&gt; loadJsonFromAsset(BuildContext context,
      String filePath) async {
    print("filePath: $filePath");

    String content = await DefaultAssetBundle.of(context).loadString(filePath);

    print("content: $content");

    Map&lt;String, dynamic&gt; jsonMap = json.decode(content);

    return jsonMap;
  }

  Future&lt;Map&lt;String, dynamic&gt;&gt; loadJsonFromStorage(BuildContext context,
      String filePath) async {
    print("filePath: $filePath");

    File file = new File(filePath);

    if (file.existsSync()) {
      String content = file.readAsStringSync();

      print("content: $content");

      Map&lt;String, dynamic&gt; jsonMap = json.decode(content);

      return jsonMap;
    }

    throw "File not found!";
  }

  Future&lt;Map&lt;String, dynamic&gt;&gt; loadJsonFromUrl(BuildContext context,
      String filePath) async {
    print("filePath: $filePath");

    String username = '';
    String password = '';
    String basicAuth =
        'Basic ' + base64Encode(utf8.encode('$username:$password'));
    print('basicAuth: $basicAuth');

    http.Response response = await http.get(Uri.encodeFull(filePath), headers: {
      "Accept": "application/json",
      "Authorization": basicAuth,
    });

    if (response.statusCode == 200) {
      Map&lt;String, dynamic&gt; jsonMap = json.decode(response.body);

      return jsonMap;
    }

    throw "${response.statusCode} - ${response.reasonPhrase}: ${response.body}";
  }
}
</code></pre>
            <h3 id="expected-outcome">Expected Outcome</h3>
            <p align="center">
                <img width="300"
                     src="https://raw.githubusercontent.com/Legytma/schema_form/master/image1.png">
                <img width="300"
                     src="https://raw.githubusercontent.com/Legytma/schema_form/master/image2.png">
            </p>
        </section>


        <section class="summary offset-anchor" id="constructors">
            <h2>Constructors</h2>

            <dl class="constructor-summary-list">
                <dt id="SchemaForm" class="callable">
                    <span class="name"><a
                            href="schema_form/SchemaForm/SchemaForm.html">SchemaForm</a></span><span
                        class="signature">({<span class="parameter" id="-param-key"><span
                        class="type-annotation">Key</span> <span class="parameter-name">key</span>, </span> <span
                        class="parameter" id="-param-jsonSchemaBloc"><span
                        class="type-annotation"><a href="schema_form/JsonSchemaBloc-class.html">JsonSchemaBloc</a></span> <span
                        class="parameter-name">jsonSchemaBloc</span></span> })</span>
                </dt>
                <dd>
                    Create a <a href="schema_form/SchemaForm-class.html">SchemaForm</a> using <a
                        href="schema_form/JsonSchemaBloc-class.html">JsonSchemaBloc</a>. <a
                        href="schema_form/SchemaForm/SchemaForm.html">[...]</a>
                </dd>
            </dl>
        </section>

        <section class="summary offset-anchor" id="instance-properties">
            <h2>Properties</h2>

            <dl class="properties">
                <dt id="jsonSchemaBloc" class="property">
                    <span class="name"><a href="schema_form/SchemaForm/jsonSchemaBloc.html">jsonSchemaBloc</a></span>
                    <span class="signature">&#8594; <a href="schema_form/JsonSchemaBloc-class.html">JsonSchemaBloc</a></span>
                </dt>
                <dd>
                    <a href="schema_form/SchemaForm-class.html">SchemaForm</a> Business Logic
                    Object. <a href="schema_form/SchemaForm/jsonSchemaBloc.html">[...]</a>
                    <div class="features">final</div>
                </dd>
                <dt id="hashCode" class="property inherited">
                    <span class="name"><a
                            href="schema_form/SchemaForm/hashCode.html">hashCode</a></span>
                    <span class="signature">&#8594; int</span>
                </dt>
                <dd class="inherited">
                    The hash code for this object. <a href="schema_form/SchemaForm/hashCode.html">[...]</a>
                    <div class="features">read-only, inherited</div>
                </dd>
                <dt id="key" class="property inherited">
                    <span class="name"><a href="schema_form/SchemaForm/key.html">key</a></span>
                    <span class="signature">&#8594; Key</span>
                </dt>
                <dd class="inherited">
                    Controls how one widget replaces another widget in the tree. <a
                        href="schema_form/SchemaForm/key.html">[...]</a>
                    <div class="features">final, inherited</div>
                </dd>
                <dt id="runtimeType" class="property inherited">
                    <span class="name"><a
                            href="schema_form/SchemaForm/runtimeType.html">runtimeType</a></span>
                    <span class="signature">&#8594; Type</span>
                </dt>
                <dd class="inherited">
                    A representation of the runtime type of the object.
                    <div class="features">read-only, inherited</div>
                </dd>
            </dl>
        </section>

        <section class="summary offset-anchor" id="instance-methods">
            <h2>Methods</h2>
            <dl class="callables">
                <dt id="build" class="callable">
                    <span class="name"><a
                            href="schema_form/SchemaForm/build.html">build</a></span><span
                        class="signature">(<wbr><span class="parameter"
                                                      id="build-param-context"><span
                        class="type-annotation">BuildContext</span> <span class="parameter-name">context</span></span>)
            <span class="returntype parameter">&#8594; Widget</span>
          </span>
                </dt>
                <dd>
                    Describes the part of the user interface represented by this widget. <a
                        href="schema_form/SchemaForm/build.html">[...]</a>

                </dd>
                <dt id="createElement" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/createElement.html">createElement</a></span><span
                        class="signature">(<wbr>)
            <span class="returntype parameter">&#8594; StatelessElement</span>
          </span>
                </dt>
                <dd class="inherited">
                    Creates a <code>StatelessElement</code> to manage this widget's location in the
                    tree. <a href="schema_form/SchemaForm/createElement.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="debugDescribeChildren" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/debugDescribeChildren.html">debugDescribeChildren</a></span><span
                        class="signature">(<wbr>)
            <span class="returntype parameter">&#8594; List<span class="signature">&lt;<wbr><span
                    class="type-parameter">DiagnosticsNode</span>&gt;</span></span>
          </span>
                </dt>
                <dd class="inherited">
                    Returns a list of <code>DiagnosticsNode</code> objects describing this node's
                    children. <a href="schema_form/SchemaForm/debugDescribeChildren.html">[...]</a>
                    <div class="features">@protected, inherited</div>
                </dd>
                <dt id="debugFillProperties" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/debugFillProperties.html">debugFillProperties</a></span><span
                        class="signature">(<wbr><span class="parameter"
                                                      id="debugFillProperties-param-properties"><span
                        class="type-annotation">DiagnosticPropertiesBuilder</span> <span
                        class="parameter-name">properties</span></span>)
            <span class="returntype parameter">&#8594; void</span>
          </span>
                </dt>
                <dd class="inherited">
                    Add additional properties associated with the node. <a
                        href="schema_form/SchemaForm/debugFillProperties.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="noSuchMethod" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/noSuchMethod.html">noSuchMethod</a></span><span
                        class="signature">(<wbr><span class="parameter"
                                                      id="noSuchMethod-param-invocation"><span
                        class="type-annotation">Invocation</span> <span class="parameter-name">invocation</span></span>)
            <span class="returntype parameter">&#8594; dynamic</span>
          </span>
                </dt>
                <dd class="inherited">
                    Invoked when a non-existent method or property is accessed. <a
                        href="schema_form/SchemaForm/noSuchMethod.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="toDiagnosticsNode" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/toDiagnosticsNode.html">toDiagnosticsNode</a></span><span
                        class="signature">(<wbr>{<span class="parameter"
                                                       id="toDiagnosticsNode-param-name"><span
                        class="type-annotation">String</span> <span
                        class="parameter-name">name</span>, </span> <span class="parameter"
                                                                          id="toDiagnosticsNode-param-style"><span
                        class="type-annotation">DiagnosticsTreeStyle</span> <span
                        class="parameter-name">style</span></span> })
            <span class="returntype parameter">&#8594; DiagnosticsNode</span>
          </span>
                </dt>
                <dd class="inherited">
                    Returns a debug representation of the object that is used by debugging
                    tools and by <a href="schema_form/SchemaForm/toStringDeep.html">DiagnosticsNode.toStringDeep</a>.
                    <a href="schema_form/SchemaForm/toDiagnosticsNode.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="toString" class="callable inherited">
                    <span class="name"><a
                            href="schema_form/SchemaForm/toString.html">toString</a></span><span
                        class="signature">(<wbr>{<span class="parameter"
                                                       id="toString-param-minLevel"><span
                        class="type-annotation">DiagnosticLevel</span> <span class="parameter-name">minLevel</span>: <span
                        class="default-value">DiagnosticLevel.debug</span></span> })
            <span class="returntype parameter">&#8594; String</span>
          </span>
                </dt>
                <dd class="inherited">
                    Returns a string representation of this object.
                    <div class="features">inherited</div>
                </dd>
                <dt id="toStringDeep" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/toStringDeep.html">toStringDeep</a></span><span
                        class="signature">(<wbr>{<span class="parameter"
                                                       id="toStringDeep-param-prefixLineOne"><span
                        class="type-annotation">String</span> <span class="parameter-name">prefixLineOne</span>: <span
                        class="default-value">''</span>, </span> <span class="parameter"
                                                                       id="toStringDeep-param-prefixOtherLines"><span
                        class="type-annotation">String</span> <span class="parameter-name">prefixOtherLines</span>, </span> <span
                        class="parameter" id="toStringDeep-param-minLevel"><span
                        class="type-annotation">DiagnosticLevel</span> <span class="parameter-name">minLevel</span>: <span
                        class="default-value">DiagnosticLevel.debug</span></span> })
            <span class="returntype parameter">&#8594; String</span>
          </span>
                </dt>
                <dd class="inherited">
                    Returns a string representation of this node and its descendants. <a
                        href="schema_form/SchemaForm/toStringDeep.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="toStringShallow" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/toStringShallow.html">toStringShallow</a></span><span
                        class="signature">(<wbr>{<span class="parameter"
                                                       id="toStringShallow-param-joiner"><span
                        class="type-annotation">String</span> <span
                        class="parameter-name">joiner</span>: <span
                        class="default-value">', '</span>, </span> <span class="parameter"
                                                                         id="toStringShallow-param-minLevel"><span
                        class="type-annotation">DiagnosticLevel</span> <span class="parameter-name">minLevel</span>: <span
                        class="default-value">DiagnosticLevel.debug</span></span> })
            <span class="returntype parameter">&#8594; String</span>
          </span>
                </dt>
                <dd class="inherited">
                    Returns a one-line detailed description of the object. <a
                        href="schema_form/SchemaForm/toStringShallow.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
                <dt id="toStringShort" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/toStringShort.html">toStringShort</a></span><span
                        class="signature">(<wbr>)
            <span class="returntype parameter">&#8594; String</span>
          </span>
                </dt>
                <dd class="inherited">
                    A short, textual description of this widget.
                    <div class="features">inherited</div>
                </dd>
            </dl>
        </section>

        <section class="summary offset-anchor inherited" id="operators">
            <h2>Operators</h2>
            <dl class="callables">
                <dt id="operator ==" class="callable inherited">
                    <span class="name"><a href="schema_form/SchemaForm/operator_equals.html">operator ==</a></span><span
                        class="signature">(<wbr><span class="parameter" id="==-param-other"><span
                        class="type-annotation">dynamic</span> <span
                        class="parameter-name">other</span></span>)
            <span class="returntype parameter">&#8594; bool</span>
          </span>
                </dt>
                <dd class="inherited">
                    The equality operator. <a href="schema_form/SchemaForm/operator_equals.html">[...]</a>
                    <div class="features">inherited</div>
                </dd>
            </dl>
        </section>


    </div> <!-- /.main-content -->

    <div id="dartdoc-sidebar-right"
         class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
        <ol>
            <li class="section-title"><a href="schema_form/SchemaForm-class.html#constructors">Constructors</a>
            </li>
            <li><a href="schema_form/SchemaForm/SchemaForm.html">SchemaForm</a></li>

            <li class="section-title">
                <a href="schema_form/SchemaForm-class.html#instance-properties">Properties</a>
            </li>
            <li><a href="schema_form/SchemaForm/jsonSchemaBloc.html">jsonSchemaBloc</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/hashCode.html">hashCode</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/key.html">key</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/runtimeType.html">runtimeType</a>
            </li>

            <li class="section-title"><a href="schema_form/SchemaForm-class.html#instance-methods">Methods</a>
            </li>
            <li><a href="schema_form/SchemaForm/build.html">build</a></li>
            <li class="inherited"><a
                    href="schema_form/SchemaForm/createElement.html">createElement</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/debugDescribeChildren.html">debugDescribeChildren</a>
            </li>
            <li class="inherited"><a href="schema_form/SchemaForm/debugFillProperties.html">debugFillProperties</a>
            </li>
            <li class="inherited"><a
                    href="schema_form/SchemaForm/noSuchMethod.html">noSuchMethod</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/toDiagnosticsNode.html">toDiagnosticsNode</a>
            </li>
            <li class="inherited"><a href="schema_form/SchemaForm/toString.html">toString</a></li>
            <li class="inherited"><a
                    href="schema_form/SchemaForm/toStringDeep.html">toStringDeep</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/toStringShallow.html">toStringShallow</a>
            </li>
            <li class="inherited"><a
                    href="schema_form/SchemaForm/toStringShort.html">toStringShort</a></li>

            <li class="section-title inherited"><a
                    href="schema_form/SchemaForm-class.html#operators">Operators</a></li>
            <li class="inherited"><a href="schema_form/SchemaForm/operator_equals.html">operator
                ==</a></li>


        </ol>
    </div><!--/.sidebar-offcanvas-->

</main>

<footer>
  <span class="no-break">
    schema_form 1.0.0
  </span>


</footer>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/highlight.pack.js"></script>
<script src="static-assets/URI.js"></script>
<script src="static-assets/script.js"></script>


</body>

</html>
